package org.p2psimulator.entity.reputation;

import org.p2psimulator.entity.reputation.chordbased.ChordReputationManager;
import org.p2psimulator.entity.reputation.gnutellabased.BayesianReputationManager;
import org.p2psimulator.entity.reputation.gnutellabased.P2PReputationManager;
import org.p2psimulator.entity.reputation.gnutellabased.XrepReputationManager;
import org.p2psimulator.entity.reputation.hibrid.EigenTrustManager;

public enum ReputationManagerTypes {


	CHORDMANAGER,
	XREPMANAGER,
	P2PMANAGER,
	BAYESIANMANAGER,
	STORMMANAGER,
	EIGENMANAGER;

	public ReputationManager getManager(){
		switch (this){
			case XREPMANAGER:
				return new XrepReputationManager();
			case P2PMANAGER:
				return new P2PReputationManager();
			case BAYESIANMANAGER:
				return new BayesianReputationManager();
			case CHORDMANAGER:
				return new ChordReputationManager();
			case EIGENMANAGER:
				return new EigenTrustManager();
                        case STORMMANAGER:
				return new ChordReputationManager();
			default:
				throw new IllegalArgumentException();
		}
	}
}
